home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / batchut / cdtect.zip / CDTECT.ASM next >
Assembly Source File  |  1988-04-05  |  2KB  |  49 lines

  1. page 48,132
  2. cseg    segment
  3.         assume cs:cseg,ds:cseg
  4.         org 100h
  5. ;
  6. ; CDTECT.ASM
  7. ; This program by Ed Barboni 4/5/88. Ver 1.0
  8. ; It was a quick 'hack', so please, no comments about it's structure,
  9. ; or lack thereof!
  10. ; Any comments, or suggestions may be directed to me on my BBS,
  11. ; 'System-2' (215) 584-1412.
  12. ;
  13. ; I wrote this to solve a simple need to control my batch files upon
  14. ; the Status of the Carrier Detect bit on a com port.
  15. ; It is 'hard coded' to test for Carrier Detect on my system set up 
  16. ; as COM1.  There is no guarantee that it will work on your system.
  17. ;
  18. ; IF there is any interest, I will write it to accept the comport number
  19. ; as a command line argument, (i.e. 'CDTECT 1' or 'CDTECT 2'), but for
  20. ; now, to use on other than COM1 requires modification and re assembly.
  21. ;
  22. ; Usage:
  23. ;       When invoked, CDTECT simply executes, and uses int 21h to set
  24. ;       the DOS ERRORLEVEL according to whether it found Carrier Detect
  25. ;       on COM1.
  26. ;       For instance, If you want to jump to a label 'yescar' if CD is
  27. ;       still true, use this...
  28. ;
  29. ;       CDTECT
  30. ;       IF ERRORLEVEL 2 goto yescar
  31. ;    
  32. ;       CDTECT returns ERRORLEVEL equal to 2 if CD is true, and
  33. ;       ERRORLEVEL equal to 1 if CD false.  The best use is to test
  34. ;       for CD true in your batch file as above.
  35. ;        
  36. ;
  37.         mov     dx,1022d        ;move port # to DX (COM1 modm stat reg)
  38.         in      al,dx           ;return contents of port to al
  39.         cmp     al,127d         ;if it's > 127, CD is true
  40.         ja      cardet          ;jump if carrier detect true
  41. nocar:  mov     al,1            ;errorlevel = 1 if no carrier
  42.         jmp     exiter          ;skip over carrier= true
  43. cardet: mov     al,2            ;errorlevel=2 if carrier
  44. exiter: mov     ah,4ch          ;set up exit
  45.         int     21h             ;exit and return Dos errorlevel = to al
  46. ;
  47. cseg    ends
  48.         end
  49.